<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            width: 600px;
            margin: 100px auto;
        }
        
        .message {
            display: inline-block;
            font-size: 12px;
            color: #999;
            background: url(img/mess.png) no-repeat left center;
            padding-left: 20px;
        }
        
        .wrong {
            color: red;
            background-image: url(img/wrong.png);
        }
        
        .right {
            color: green;
            background-image: url(img/right.png);
        }
    </style>
</head>

<body>
    <div class="register">
        <input type="password" class="ipt">
        <img src="img/3.png" alt="" class="img1">
        <p class="message">密码以字母开头，长度在6~18之间，只能包含字母、数字和下划线</p>
    </div>
    <script>
       var obj= document.querySelector('.ipt');
        var img = document.querySelector('img');
        console.dir(img);
        obj.onblur = function()
         {
                var p = obj.value;
                var ts = document.querySelector('p');
                var Pattern = /^([A-Za-z])[a-zA-Z0-9_]{5,17}$/;
                var matchPattern;
                if (Pattern.test(p)) {
                    ts.className = 'right';
                    img.src = 'img/1.png';
                    ts.innerText = '您输入的正确';
                } else {
                    ts.className = 'wrong';
                    img.src = 'img/2.png';
                    ts.innerText ='密码以字母开头，长度在6~18之间，只能包含字母、数字和下划线';
                }
            }
            // 首先判断的事件是表单失去焦点 onblur
            // 如果输入正确则提示正确的信息颜色为绿色小图标变化
            // 如果输入不是：以字母开头，长度在6~18之间，只能包含字母、数字和下划线，则提示错误信息颜色为红色 小图标变化
            // 因为里面变化样式较多，我们采取className修改样式
            // 1.获取元素 ipt message元素
            //2. 注册事件 失去焦点
            // ipt.onblur = function() {}
            // 正则表达式判断是否满足密码要求：以字母开头，长度在6~18之间，只能包含字母、数字和下划线
            //如果满足要求则p标签的className改成 message right，提示：您输入的正确,否则改成message wrong，提示：密码请以字母开头，长度在6~18之间，只能包含字母、数字和下划线
    </script>
</body>

</html>